/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author lory
 */

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Iterator;

public class Gestore {
    
    public Lista listaPdf;
    public Lista listaLibro;
    static final int NUM_MAX_LIBRI = 10;
    
    public Gestore() {
        listaPdf = new ListaPdf();
        listaLibro = new ListaLibro();
    }
    
    public void accogliCliente() {
        
        InputStreamReader inputStream = new InputStreamReader(System.in);
        BufferedReader reader = new BufferedReader(inputStream);
        int oggettoDaStampare = 0;
        System.out.println("Buongiorno, se intende stampare un pdf prema 1, "
                + "se invece vuol fotocopiare un libro prema 2.\n");
        
        try {
            
                oggettoDaStampare = Integer.parseInt(reader.readLine());
        } 
        
        catch (IOException e) {
            System.exit(1);
        }
                switch(oggettoDaStampare) { 

                    case 1:
                        Pdf pdf = new Pdf();
                        try {
                            System.out.println("Inserisca il nome del file da stampare \n");
                            pdf.setNome(reader.readLine());
                            System.out.println("Inserisca il numero di pagine che vuole "
                                    + "stampare \n");
                            pdf.setPagine(Integer.parseInt(reader.readLine()));
                            System.out.println("Inserisca il numero di copie che vuole "
                                    + "stampare \n");
                            pdf.setNumeroCopie(Integer.parseInt(reader.readLine()));
                            System.out.println("Inserisca il suo nome \n");
                            pdf.setCliente(reader.readLine());
                        }
                        catch (IOException e) {
                            System.exit(1);
                        }
                        listaPdf.add(pdf);
                        break; 

                    case 2: 
                        if (listaLibro.getNumero() >= NUM_MAX_LIBRI)
                            System.out.println("Siamo spiacenti, ma a causa di limitatezza del "
                                    + "personale non possiamo accettare piu' di dieci libri "
                                    + "per volta.\n");
                        else{
                            Libro libro = new Libro();
                            try {
                                System.out.println("Inserisca il titolo del libro da "
                                        + "fotocopiare \n");
                                libro.setNome(reader.readLine());
                                System.out.println("Inserisca il numero di pagine che vuole "
                                        + "fotocopiare \n");
                                libro.setPagine(Integer.parseInt(reader.readLine()));
                                System.out.println("Inserisca il numero di copie che "
                                        + "desidera \n");
                                libro.setNumeroCopie(Integer.parseInt(reader.readLine()));
                                System.out.println("Inserisca il suo nome \n");
                                libro.setCliente(reader.readLine());
                            }
                            catch (IOException e) {
                                System.exit(1);
                            }
                            listaLibro.add(libro);
                        }
                        break; 

                    default:
                        System.out.println("Ha sbagliato ad inserire il numero, le "
                                + "scelte possibili sono 1 o 2");
                        accogliCliente();
                        break;
                }     
   
    }
    
    public void stampaPdf() {
        System.out.println("\nSono pronti per il pagamento i seguenti pdf:\n");
        Iterator pdfIterator = listaPdf.createIterator();
        while(pdfIterator.hasNext()){
            Pdf pdf = (Pdf) pdfIterator.next();
            pdfIterator.remove();
            System.out.println("Per il cliente "+pdf.getCliente()+" abbiamo "+pdf.getNome());
            emettiScontrino(pdf.getPagine(), pdf.getNumeroCopie());
        }
    }
    
    public void fotocopiaLibro() {
        System.out.println("\nSono pronti per il pagamento i seguenti libri:\n");
        Iterator libroIterator = listaLibro.createIterator();
        System.out.println("la lunghezza è "+listaLibro.length());
        while(libroIterator.hasNext()){
            Libro libro = (Libro) libroIterator.next();
            System.out.println(libro.getCliente());
            System.out.println("Per il cliente "+libro.getCliente()+" abbiamo "+libro.getNome());
            emettiScontrino(libro.getPagine(), libro.getNumeroCopie());
        }
        libroIterator.remove();
        
    }
    
    public void emettiScontrino(int pagine, int numeroCopie) {
        double costo = pagine * 0.04 * numeroCopie;
        System.out.println("\nIl costo e' "+costo+"\n");
    }
    
}
